package com.dbsop.operation.field;

import com.dbsop.domain.info.EsFiledInfo;

import java.util.Collection;
import java.util.Map;

/**
 * 字段操作
 */
public interface FieldOperation {

    /**
     * 校验字段
     *
     * @param indexName
     * @param esFiledInfoList
     * @return
     */
    Boolean checkIndexFields(String indexName, Collection<EsFiledInfo> esFiledInfoList);

    /**
     * 校验 ES 库是否包含现存字段
     * @param indexName
     * @param esFiledInfoList
     * @return
     */
    void checkContain(String indexName, Collection<EsFiledInfo> esFiledInfoList);

    /**
     * 获取字段信息
     *
     * @param indexName
     * @return
     */
    Map<String, Map<String, Object>> getFields(String indexName);

    /**
     * 索引创建字段
     *
     * @param esFiledInfoList
     */
    void createIndexFiled(String indexName, Collection<EsFiledInfo> esFiledInfoList);

}
